package lol.clann.exampleplugin.listener;

import lol.clann.clannboot.annotation.inject.Inject;
import lol.clann.clannboot.annotation.svc.Service;
import lol.clann.exampleplugin.ExamplePlugin;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

/**
 * @author pyz
 * @date 2018/10/8 下午10:31
 */
// @Service注解的类,会被自动实例化(实例化后的对象,我称之为service),FirstListener实现了Listener,所以会自动注册为监听器
@Service
public class FirstListener implements Listener {
    // @Inject会对service中的对象进行依赖注入,这里examplePlugin是插件主类,所以会注入对应的插件实例
    // 注入类型有很多,后面慢慢讲解
    // 什么,你问这样有啥用,那如果有十个,二十个类,每个类中都有N个属性需要赋值呢?
    @Inject
    private ExamplePlugin examplePlugin;

    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
    public void event(PlayerJoinEvent event) {
        event.getPlayer().sendMessage("你好");
    }
}
